导航菜单

Philosophy

Philosophy

Jekyll offers a unique philosophy when approaching the problem of staticsite generation. This core philosophy drives development and productdecisions. When a contributor, maintainer, or user asks herself what Jekyllis about, the following principles should come to mind:

1. No Magic

Jekyll is not magic. A user should be able to understand the underlyingprocesses that make up the Jekyll build without much reading. It shoulddo only what you ask it to and nothing more. When a user takes a certainaction, the outcome should be easily understandable and focused.

2. It “Just Works”

The out-of-the-box experience should be that it “just works.” Rungem install jekyll and it should build any Jekyll site that it’s given.Features like auto-regeneration and settings like the markdown renderershould represent sane defaults that work perfectly for the vast majority ofcases. The burden of initial configuration should not be placed on the user.

3. Content is King

Why is Jekyll so loved by content creators? It focuses on content first andforemost, making the process of publishing content on the Web easy. Usersshould find the management of their content enjoyable and simple.

4. Stability

If a user’s site builds today, it should build tomorrow.Backwards-compatibility should be strongly preferred over breaking changes.Breaking changes should be made to support a strong practical goal, andbreaking changes should never be made to drive forward “purity” of thecodebase, or other changes purely to make the maintainers’ lives easier.Breaking changes provide a significant amount of friction between upgradesand reduce the confidence of users in this software, and should thus beavoided unless absolutely necessary.Upon breaking changes, provide a clear path for users to upgrade.

5. Small & Extensible

The core of Jekyll should be simple and small, and extensibility should bea first-class feature to provide added functionality from communitycontributors. The core should be kept to features used by at least 90% ofusers–everything else should be provided as a plugin. New features shouldbe shipped as plugins and focus should be put on creating extensible coreAPI’s to support rich plugins.

相关推荐: